package cn.edu.gues.infosystam.mapper;

import cn.edu.gues.infosystam.entity.Task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 苏小小
 * @since 2020-06-11
 */
public interface TaskMapper extends BaseMapper<Task> {

    /**
     * 查询所有任务
     * @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)
     * @param queryWrapper 条件构造器（至少要有一个条件，否则会出现异常，TODO: 待修复无传值查询所有任务而不是未删除任务BUG）
     * @return
     */
    @Select("select task.task_id, task.tno, task.task_name, task.task_range, task.task_template, task.task_start, task.task_end, task.task_state, task.deleted, task.gmt_create, task.gmt_modified, t.tname " +
            "from task left join teacher t on task.tno = t.tno  ${ew.customSqlSegment} and task.deleted = 0 ORDER BY task.task_id DESC ")
    IPage<Task> getTaskList(Page<?> page,@Param(Constants.WRAPPER) QueryWrapper<Task> queryWrapper);

}
